In online backup systems a client may concatenate many files into a single archive file and then upload the archive file as a whole to a remote backup server. In computers, an “archive file” might be a file that contains several compressed files, and a “client” might be an application or computer system that accesses a remote service on another computer system, known as a server, by using some communication network (e.g., the Internet).
A popular and simple way to transfer files, such as an archive file, from clients to backup servers is by using the Hypertext Transfer Protocol (“HTTP”). HTTP is a request/response communication standard that facilitates data transfers between a client and a server on the Internet. In the Internet environment a client is the end-user and the server is a website.
While every server used for backing up archive files supports standard HTTP/WebDAV commands such as “GET”, “PUT” and “LIST”, many servers do not support the byte-range feature that is required to resume failed data transfers. Thus, if a file (e.g., an archive file) transmitted from the client to the server is very large (e.g., at least in the order of megabytes) and the communication connection between the client and the server is interrupted or cut off during transmission, the entire file must be retransmitted at the next available opportunity, rather than transmitting only the portion of the file that has not yet been received by the server. This impedes using simple hosted web services as servers for online backup because sending a large file takes a considerable amount of time and requires computing resources. Therefore, the traditional requirement to retransmit the entire file only exacerbates this problem.
Hence, there is a need to address the problem of backing up files in a server in a way that would make the backing up process more efficient. For example, there is a need for a client that can send a large file to a server in a way that the client would not have to retransmit the entire file because of communication failures.